<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 封装一个函数 判断是否是完美数 

        // 12321  10101  1234321 
        // 从左到右 从右到左 一样的  这个数字就是完美数 
        // reverse() 是数组的方法  
        // 12321 变成数组  先变成字符串  再变成数组  
        function is_prefect(num){
            return num == parseInt(String(num).split('').reverse().join(''));
        }   
        // 上面的写法叫做链式调用  
        // alert(is_prefect(12121));
        // alert(is_prefect(123));



        // 自己封装函数转大小写  
        // 不能使用 toUpperCase()  toLowerCase()
        // a  97
        // A  65 
        // 大小写之间差了32 
        // 先转成unicode 然后 -32 转回字符   小写转大写
        // 字符串.charcodeA
        // 先转成unicode 然后 +32 转回字符   大写转小写

        function isupperorlower(bytes){
            if(bytes>='a' && bytes<='z'){
                return true
            }
            else if(bytes>='A' && bytes<='Z'){
                return false 
            }
        }
        // 'ABC'.charCodeAt()
        // String.fromCharCode(编码)
        // concat
        function to_upper_or_lower(strs){ 
            var res = ''
            //遍历每个字符串 拿到每个字符
            for(var i=0;i<strs.length;i++){
                
                if(isupperorlower(strs[i])){
                     // 小写   先转成unicode 然后 -32 转回字符
                     res += String.fromCharCode(strs[i].charCodeAt()-32)
                }
                else{
                    // 大写   先转成unicode 然后 -32 转回字符
                    res += String.fromCharCode(strs[i].charCodeAt()+32)
                }
                
                  // 拼接起来 
            }
            return  res
        }


        alert(to_upper_or_lower('iloveyou'))


        // 'asdf91adsfasd91fadsfas91dfasdfadsfa91sdfa91sdf'
        // 'asdf**adsfasd**fadsfas**dfasdfadsfa**sdfa**sdf'
        // 'asdf91adsfasd91fadsfas91dfasdfadsfa91sdfa91sdf' //只有一个敏感词
        // 'asdf**adsfasd**fadsfas**dfasdfadsfa**sdfa**sdf'

        // 'asdf91adsfasd91fads垃圾fas91dfasd废物fadsfa91sdfa91sdf' //多个敏感词
        // 'asdf**adsfasd**fads**fas**dfasd**fadsfa**sdfa**sdf'


    </script>
</body>
</html>